package cn.element.io.bio.upload;

import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.Socket;

/**
 * 实现客户端上传任意类型的文件数据给服务端保存起来
 */
public class Client {

    public static void main(String[] args) {
        try(
            InputStream is = new FileInputStream("C:/Users/Dell/Desktop/reactor1.png")
        ) {
            Socket socket = new Socket("127.0.0.1", 8848);

            // 把字节输出流包装成一个数据输出流
            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

            // 先发送上传文件的后缀给服务器
            dos.writeUTF(".png");

            byte[] buffer = new byte[1024];
            int l;

            while ((l = is.read(buffer)) > 0) {
                dos.write(buffer, 0, l);
            }

            dos.flush();
            socket.shutdownOutput();  // 通知服务端数据已经发送完毕了
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

}
